﻿
Public Class Global_asax
    Inherits System.Web.HttpApplication


    ''' <summary>
    ''' Evento que se dispara al iniciar la aplicación.
    ''' </summary>
    ''' <remarks>En el framework es utiliza este evento para inicializar variables.</remarks>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires when the application is started

        'variable de aplicacion que dice si es necesario desloguear al usuario 1=Si 0=no
        Application("LogOut") = 1
    End Sub

    ''' <summary>
    ''' Evento que se dispara cuando inicia la sesión.
    ''' </summary>
    ''' <remarks>En el framework se utiliza este evento para inicializar varias variables de sesión.</remarks>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        'Iniciacion de variables de Session

        'Para el log de errores
        If Session("AppPage") Is Nothing Then
            Session.Add("AppPage", "Session_Start")
        End If

        'Nombre del programa (pagina de ayuda)
        If Session("Programa") Is Nothing Then
            Session.Add("Programa", "")
        End If

        'Para cambio dinamico de tema
        If Session("Tema") Is Nothing Then
            'Hardcode del tema a levantar (A CORREGIR)
            Session.Add("Tema", "fwrk01")
        End If

        'Variables de Session de errores
        If Session("ErrorMensaje") Is Nothing Then
            Session.Add("ErrorMensaje", "")
        End If
        If Session("ErrorDescripcion") Is Nothing Then
            Session.Add("ErrorDescripcion", "")
        End If
        If Session("ErrorPilaEjecucion") Is Nothing Then
            Session.Add("ErrorPilaEjecucion", "")
        End If
    End Sub

    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires at the beginning of each request
    End Sub

    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires upon attempting to authenticate the use
    End Sub

    ''' <summary>
    ''' Evento que se dispara al producirse un error en la aplicación.
    ''' </summary>
    ''' <remarks>Se utiliza en el framework para redirigir el tratamiento de errores a una única página.</remarks>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        Try
            'Pasa el entorno del error/exception a la pagina de errores.
            Server.Transfer("~/FwrkPages/GenericErrors.aspx")
        Catch ex As Exception
            Dim ex1 As Exception = Server.GetLastError()
        End Try
    End Sub

    ''' <summary>
    ''' Evento que se dispara al finaliza la sesión.
    ''' </summary>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires when the session ends
    End Sub

    ''' <summary>
    ''' Evento que se dispara al finalizar la aplicación.
    ''' </summary>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires when the application ends
    End Sub
End Class